package lock;

/**
 * Created by lxue on 16/5/17.
 */
public class ThreadTest {
    public static void main(String[] args) {
        Object shareobj = new Object();
        TestThread_Locked thread1 = new TestThread_Locked(shareobj);
        thread1.start(); //启动第一个线程
        TestThread_WaitingTo thread2 = new TestThread_WaitingTo(shareobj);
        thread2.start(); //启动第二个线程
        TestThread_WaitingOn thread3 = new TestThread_WaitingOn();
        thread3.start(); //启动第三个线程

        /**
         * 当一个线程占有一个锁的时候,线程堆栈中会打印—locked <0x22bffb60>
         当一个线程正在等待其它线程释放该锁,线程堆栈中会打印—waiting to lock <0x22bffb60>
         当一个线程占有一个锁,但又执行到该锁的wait()上,线程堆栈中首先打印locked,然后又 会打印—waiting on <0x22c03c60>
         */
    }
}
